草庐IT

iOS DispatchSourceTimer 定时器

全部标签

c# - 如何产生精确定时的音调和静音?

我有一个C#项目可以为RSS提要播放摩尔斯电码。我使用ManagedDirectX编写它,却发现ManagedDirectX已过时且已弃用。我的任务是播放纯正弦波脉冲串,中间穿插着静默期(代码),这些静默期的持续时间是精确计时的。我需要能够调用一个函数来播放纯音这么多毫秒,然后Thread.Sleep()然后播放另一个,等等。最快时,音调和空格可以短至40毫秒。它在ManagedDirectX中运行良好。为了获得精确定时的音调,我创建了1秒。正弦波进入辅助缓冲区,然后播放一定持续时间的音调,我寻求在缓冲区结束后的x毫秒内播放,然后播放。我试过System.Media.SoundPlay

c# - 如何产生精确定时的音调和静音?

我有一个C#项目可以为RSS提要播放摩尔斯电码。我使用ManagedDirectX编写它,却发现ManagedDirectX已过时且已弃用。我的任务是播放纯正弦波脉冲串,中间穿插着静默期(代码),这些静默期的持续时间是精确计时的。我需要能够调用一个函数来播放纯音这么多毫秒,然后Thread.Sleep()然后播放另一个,等等。最快时,音调和空格可以短至40毫秒。它在ManagedDirectX中运行良好。为了获得精确定时的音调,我创建了1秒。正弦波进入辅助缓冲区,然后播放一定持续时间的音调,我寻求在缓冲区结束后的x毫秒内播放,然后播放。我试过System.Media.SoundPlay

c# - 定时器可以自动收集垃圾吗?

当您使用将在程序的整个生命周期内运行的Timer或Thread时,您是否需要保留对它们的引用以防止它们被收集垃圾?请撇开下面的程序可以将timer作为类中的静态变量这一事实,这只是一个演示问题的玩具示例。publicclassProgram{staticvoidMain(string[]args){CreateTimer();Console.ReadLine();}privatestaticvoidCreateTimer(){varprogram=newProgram();vartimer=newTimer();timer.Elapsed+=program.TimerElapsed;t

c# - 定时器可以自动收集垃圾吗?

当您使用将在程序的整个生命周期内运行的Timer或Thread时,您是否需要保留对它们的引用以防止它们被收集垃圾?请撇开下面的程序可以将timer作为类中的静态变量这一事实,这只是一个演示问题的玩具示例。publicclassProgram{staticvoidMain(string[]args){CreateTimer();Console.ReadLine();}privatestaticvoidCreateTimer(){varprogram=newProgram();vartimer=newTimer();timer.Elapsed+=program.TimerElapsed;t

c# - .NET 中最准确的计时器?

运行以下(略微伪)代码会产生以下结果。我对计时器的天真程度感到震惊(每次Tick增加~14ms)。还有比这更准确的吗?voidMain(){vartimer=newSystem.Threading.Timer(TimerCallback,null,0,1000);}voidTimerCallback(objectstate){Debug.WriteLine(DateTime.Now.ToString("ss.ffff"));}SampleOutput:...11.910912.919013.933114.949115.963216.975217.989319.004320.016421

c# - .NET 中最准确的计时器?

运行以下(略微伪)代码会产生以下结果。我对计时器的天真程度感到震惊(每次Tick增加~14ms)。还有比这更准确的吗?voidMain(){vartimer=newSystem.Threading.Timer(TimerCallback,null,0,1000);}voidTimerCallback(objectstate){Debug.WriteLine(DateTime.Now.ToString("ss.ffff"));}SampleOutput:...11.910912.919013.933114.949115.963216.975217.989319.004320.016421

c# - 带定时器的 Windows 服务

我在c#.net中创建了一个带计时器的Windows服务。当我在visualstudio中调试/构建项目时它工作正常,但它在安装后不执行其操作。这背后的原因可能是什么?代码:publicpartialclassService1:ServiceBase{FileStreamfs;StreamWriterm_streamWriter;Timertm=newTimer();publicService1(){InitializeComponent();this.ServiceName="timerservice";tm.Interval=2000;tm.Tick+=newEventHandle

c# - 带定时器的 Windows 服务

我在c#.net中创建了一个带计时器的Windows服务。当我在visualstudio中调试/构建项目时它工作正常,但它在安装后不执行其操作。这背后的原因可能是什么?代码:publicpartialclassService1:ServiceBase{FileStreamfs;StreamWriterm_streamWriter;Timertm=newTimer();publicService1(){InitializeComponent();this.ServiceName="timerservice";tm.Interval=2000;tm.Tick+=newEventHandle

c# - 在定时器的回调方法中抛出异常

我无法在任何地方找到这个问题的答案......System.Threading.Timer的回调方法(或System.Timers.Timer的事件处理程序)中抛出的异常会发生什么情况。异常是传播到创建计时器的线程还是异常丢失?在计时器的回调函数中抛出异常有什么副作用?向计时器的创建线程发出信号表明工作线程(回调方法)中的异常已被抛出的正确方法是什么?感谢您的宝贵时间。 最佳答案 异常不会传递回调用线程。如果需要,您可以添加一个catchblock并想出一种方法来向调用线程发出信号。如果调用线程是WinForms或WPFUI线程,您

c# - 在定时器的回调方法中抛出异常

我无法在任何地方找到这个问题的答案......System.Threading.Timer的回调方法(或System.Timers.Timer的事件处理程序)中抛出的异常会发生什么情况。异常是传播到创建计时器的线程还是异常丢失?在计时器的回调函数中抛出异常有什么副作用?向计时器的创建线程发出信号表明工作线程(回调方法)中的异常已被抛出的正确方法是什么?感谢您的宝贵时间。 最佳答案 异常不会传递回调用线程。如果需要,您可以添加一个catchblock并想出一种方法来向调用线程发出信号。如果调用线程是WinForms或WPFUI线程,您